The Access Code is a series of symbols used in the network to identify the start of a radio packet and effect synchronisation and DC estimation. It has a fixed length. The Access Code used in normal communication is the Channel Access Code which identifies the network and is included in all packets exchanged in the piconet.
The header 36 has a fixed length and contains link control information including the fields: AM_ADDR, ARQN and HEC. The local address (AM_ADDR) is a word uniquely identifying a slave within a network. The local address is assigned to a slave unit by the master unit when the master unit joins the slave to the network. ARQN is used to inform the source of a successful transfer of payload data. It can be a positive acknowledgement ACK, indicating the packet was successfully transferred, or a negative acknowledgement NAK, indicating that the packet was unsuccessfully transferred. HEC is a header integrity check. It is an 8 bit word generated from the header.
The payload 38 during normal communication contains data. The payload is of variable length and may be absent. The payload has a header including the parameter L_CH, a payload body and possibly a Cyclic Redundancy Check (CRC). Generally a Link Layer Control Application Protocol (L2CAP) message is fragmented into several packets 30. The L_CH code indicates whether the payload contains the starting fragment of an L2CAP message or a continuation fragment of an L2CAP message. An a priori negotiation indicates whether the payload relates to isochronous data.
FIG. 4 illustrates a transmitter 40 communicating with a receiver 70 via a channel 60. The transmitter has timer circuitry 42, a controller 44, a transmitter portion 48, a receiver portion 46 and a FIFO memory 50 which stores a L2CAP message having fragments N, N+1 and N+2. The memory 50 receives data 49 for transmission. The data for transmission is stored as payloads N, N+1 and N+2 in portions 52, 54 and 56 respectively. Payload 52 is transmitted first, then N+1, then N+2. The output of memory 50 is connected to the transmitter portion 48 such that the contents of the portion 52 are provided as an input to the transmitter. The transmitter portion 48 encapsulates the contents of memory portion 52 as the payload of a data packet, converts the data packet from baseband to radio frequency and transmits the data packet to the receiver 70 as radio waves. The encapsulation includes the creation and inclusion of a CRC in the payload 38, the attachment of a Header 36 comprising at least AM_ADDR, ARQN and HEC and the attachment of an Access Code 34. The receiver portion 46 receives data packets from the receiver 70 and determines whether they contain an acknowledgement of the transmitted packet (i.e. ARQN). The determination is communicated to controller 44 via signal 45. If ARQN=ACK, that is, the transmitted packet was successfully received, the controller controls the memory 50 and transmitter portion 48 to transmit the payload N+1, in the next transmitted packet. The controller via control signal 43 controls the memory 52 to discard the contents of portion 52, such that the contents of portion 54 move to portion 52 and the contents of portion 56 move to portion 54. Thus packet N+1 is presented for transmission in memory portion 52. If ARQN=NAK, that is the transmitted packet was not successfully received, or otherwise the controller ensures that payload N is retransmitted. The controller does not activate control signal 43 and payload N remains in memory portion 52 for retransmission.
The timer 42 provides an important function when the L2CAP message comprises isochronous data, that is data which “expires” if not successfully transmitted within a certain period of time. The timer 42 records the amount of time for which the current packet in memory portion 52 has been retransmitted. If the value of the timer exceeds a threshold there is a timeout and the controller 44 flushes the memory 50. That is, the controller using discard signal 47 causes the memory 50 to discard all the payloads N, N+1, N+2 which are fragments of the L2CAP message to which the current payload in memory portion 52 belongs.
The receiver 70 has a receiver portion 72, a transmitter portion 74 and verification circuitry 76. The receiver portion 72 communicates with the transmitter portion 48 of transmitter 40, and the transmitter portion 74 communicates with the receiver portion 46 of transmitter 40. The transmitter and receiver portions 72 and 74 are connected to verification circuitry 76. The verification circuitry 76 determines whether a packet has been received correctly. This decision is based on the HEC and on the CRC of the payload, if present. If the payload is correctly received as determined by verification circuitry 76, the transmitter portion sets ARQN=ACK in the next transmitted packet. If the payload is incorrectly received, the transmitter portion sets ARQN=NAK in the next transmitted packet. The transmitter portion includes ARQN in the header of the next transmitted data packet. If a payload of data is also being sent in the transmitted packet it may include a CRC.
It is apparent that the transmitter 40 and receiver 70 operate according to the Automatic Response Request protocol. The contents of memory portion 52 (message N) is transmitted and retransmitted to the receiver 70 by the transmitter 40, until either:    a) the transmitter 40 successfully receives an acknowledgement from the receiver 70 that it has successfully received the packet, or    b) a timeout in the transmitter is exceeded.
The preceding description corresponds to the procedure used in the prior art and described in “Specification of the Bluetooth System”, v1.0B, Dec. 1, 1999.
The inventors have identified that certain problems arise from the prior art procedure.
Isochronous data, is data that is time bounded. That is data which requires a certain data rate but for which the delay is not critical. Such isochronous data may be delayed in its use but only within certain limits before it is outdated and no longer valid. Video, audio and voice streaming are examples of such data, but isochronous data is not limited to these examples.
The timeout control in the transmitter determines whether isochronous data is outdated. When there is a timeout, not only is the last transmitted packet discarded but so is the whole of the L2CAP message to which it belongs. This results in a loss of data which may be disproportionate to the transmission errors occurring. A single transmission error may result in a whole L2CAP message being discarded. Furthermore the loss of such a large amount of data makes error correction techniques such as forward error correction inapplicable.
It would be desirable to address such problems.
According to one aspect of the present invention there is provided a radio transceiver, for receiving data, comprising:    receiving means for receiving data;    determining means for determining whether the received data has been correctly or incorrectly received;    validation means for determining whether the received data is current;    transmission means, for transmitting, in response to received data,    a positive acknowledgement of reception when the received data has been correctly received,    a negative acknowledgement when the received data has been incorrectly received and the received data is current and    a positive acknowledgement when the received data has been incorrectly received and the received data is not current.    When data is described as “current ” in embodiments of the invention it defines    data which at the time of its reception is not outdated.
There may be an exception to this definition. In the case of data which is incorrectly received, “current” preferably defines data which will not be outdated when it is received after a retransmission. Thus, for incorrectly received data, where the received data is not itself outdated, but by the time it is retransmitted and re-received, the re-received data will be outdated, the incorrectly received data is preferably “not current”.
That is “current” may describes that data is not outdated but preferably describes that correctly received data is not outdated and that incorrectly received data is data where the possibility of still receiving a retransmission of that data, which is not outdated, still exists.
The received data may be a data packet having a payload which may include isochronous data and a header. The payload of data packets may also contain asynchronous data. The fact that the received data is isochronous may be communicated to the receiver by an a priori negotiation, as in Bluetooth Specification 1.0 b. Alternatively the data packet may contain a parameter that indicates that the packet payload contains isochronous data. In this latter example, the validation means may determine whether the received data is isochronous, for example from the parameter when contained in the packet header.
The validation means comprises a timing means for determining whether received isochronous data is current.
The determining means may determine whether the packet has been correctly or incorrectly received by testing the integrity of the header and/or by testing the integrity of the payload, for example, using a Cyclic Redundancy Check within the payload.
The radio transceiver may further comprise error correction means for correcting errors arising from incorrectly received data which was not current at reception. This is an error correction procedure which is additional to the existing FEC procedure of Bluetooth baseband. This additional error correction is above L2CAP.
The radio transceiver has means for retaining the received data for which a positive acknowledgement has been sent and for discarding received data for which a negative acknowledgement has been sent. The transceiver has a buffer for buffering the retained received data. There may be a buffer before and/or after error connection. The validation means may be coupled to the buffer such that the determination of whether the received data is current has flexibility being dependent upon the content of the buffer. It is preferable that the validation means is coupled to the buffer after error correction but it may alternatively be coupled to the buffer before error correction. The determination means may also be dependent upon the type of error correction employed. Thus the validation means takes into account the surrounding circumstances in determining whether received isochronous data is current or not.
According to a further aspect of the present invention there is provided a system comprising a transmitter and a receiver, wherein    the transmitter is arranged to transmit packets of data having payloads including isochronous data and comprises:    first transmission means for transmitting a packet of data to the receiver    first reception means for receiving from the receiver, in response to said transmission of the data packet, a positive acknowledgement or a negative acknowledgement, wherein the transmitter is arranged to retransmit a data packet comprising isochronous data unless a positive acknowledgement is received, and the    receiver comprises:    second receiving means for receiving data transmitted by the transmitter; determining means for determining whether the received data has been correctly or incorrectly received;    validation means for determining whether the received data is current;    second transmission means, for transmitting in response to received data,    a positive acknowledgement of reception when the received data has been correctly received or    a negative acknowledgement when the received data has been incorrectly received and the received data is current or    a positive acknowledgement when the received data has been incorrectly received and the received data is not current.
According to a still further aspect of the present invention there is provided a method of communicating isochronous data between a transmitter and a receiver comprising the steps of:    a) sending the isochronous data from the transmitter to the receiver;    b) receiving the isochronous data at the receiver;    c) determining whether the isochronous data has been correctly received;    d) determining whether the isochronous data is current;    e) transmitting a positive or negative acknowledgement from the receiver to the transmitter, in dependence on steps c) and d);    f) re-transmitting the isochronous data from the transmitter to the receiver unless a positive acknowledgement is received at the transmitter from the receiver.
Step e) preferably comprises transmitting a positive acknowledgement unless the received isochronous data is both incorrectly received and current. The method may further comprise transmitting new data from the transmitter to the receiver when a positive acknowledgement is received at the transmitter from the receiver.
It will therefore be appreciated that embodiments of the present invention in its various aspects have several advantages. One advantage, is an increase in performance. When a payload is incorrectly received and the payload contains isochronous data which is no longer current, a whole L2CAP message is not discarded because the timeout of the isochronous data is moved from the transmitter to the receiver side. Instead, the incorrectly received payload may be retained and the transmitter is instructed to send the next payload. This efficiency also provides for the use of additional error correction techniques such as FEC, which further increases the performance. Thus embodiments of the invention avoid discarding data except those bits actually lost via transmission errors.
For a better understanding of the present invention and to further understand how the same may be brought into effect, reference will now be made by way of example only to the enclosed drawings in which: